import { visitStatus } from '../../../constants/status'

Page({
  // 页面的初始数据
  data: {
    list: [],
    visitStatus: visitStatus,
  },
  // 分页参数 - 用于分页查询，不用于页面展示，所以没有定义到 data 中，直接通过 this 访问
  pageParams: {
    current: 1, // 当前页
    pageSize: 5, // 页大小
  },
  finish: false, // 是否已经加载完所有数据
  // 页面加载
  onLoad() {
    this.getList()
  },
  // 获取列表
  async getList() {
    // 退出分页的判断
    if (this.finish) {
      return wx.utils.toast('没有更多数据了')
    }
    // 获取列表数据
    const res = await wx.http.get('/visitor', this.pageParams)
    // 获取 data 中的列表
    const { list } = this.data
    // 将新数据添加到列表中，考虑后期分页的情况，使用 push 而不是 直接赋值
    list.push(...res.data.rows)
    // 更新列表，注意小程序中不能直接修改 this.data.list，必须调用 setData 确保数据和视图同步
    this.setData({
      list,
    })
    // 分页结束判断
    if (this.pageParams.current < res.data.pageTotal) {
      // 判断当前页是否小于总页数，如果小于，则页码加 1
      this.pageParams.current++
    } else {
      // 否则，设置 finish 为 true，表示已经加载完所有数据
      this.finish = true
    }
  },
  // 跳转到通行证详情页
  goPassport(e) {
    wx.navigateTo({
      url: `/visitor_pkg/pages/passport/index?id=${e.mark.id}`,
    })
  },
})
